package com.vteba.security.user;

import java.util.Date;
import java.util.List;
import java.util.Set;

import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

/**
 * 扩展spring security的userDetails接口，SpringSecurityContext返回该接口的实现
 * @author yinlei
 *
 */
public interface IUserDetails extends UserDetails {

	public String getId();
	
	public Long getUserId();

	public String getName();

	public String getEmail();

	public Date getCreateDate();

	public String getAccount();
	
	/**
	 * 租户Id，用来区分是那个租户的用户
	 * @return
	 */
	public String getTenantId();
	
	public String getTenantCode();
	
	public void setAuthorities(Set<GrantedAuthority> authorities);
	
	public List<? extends Menu> getModuleMenuList();
	
	public void setAuthorityList(List<? extends Authority> authorityList);
	
	public List<? extends Authority> getAuthorityList();
}
